Multiply mapped memory locations arise in situations where two, or more, disparate memory regions are mapped onto the identical physical address space. The disparate memory regions may respectively exist in different memory devices, such as in flash memory or in ROM (read only memory), for example, or may exist in different areas of the same memory device. Multiple mapping (alternatively referred to as “overloading”) of physical address space may be used, for example, to effect protected or secure execution of programming code, and may also be used to limit access to sensitive information. However, as heretofore contemplated, multiple mapping (or overloading) of physical address space precludes convenient communication or concurrent accesses between participating (overloaded) memory regions. This shortcoming derives from the fact that, in accordance with the prevailing state of the art, only one of the mapped regions may be active at a given time.
Accordingly, what is desired is a technique for effectively transferring control between multiply mapped memory locations. That is, in a system that utilizes multiple-mapped physical memory address, what is lacking is a mechanism for dynamic overloading, whereby control of a process that is predicated on, or encounters, multiple mapped memory may be effectively alternated between programming code that is resident in, at least, a first (e.g., unprotected) memory region and second (e.g., protected) memory region, where the memory regions are mapped onto identical physical address space.
Skilled artisans appreciate that elements in Drawings are illustrated for simplicity and clarity and have not (unless so stated in the Description) necessarily been drawn to scale. For example, the dimensions of some elements in the Drawings may be exaggerated relative to other elements to promote and improve understanding of embodiments of the invention.